package com.yupi.yupicturebackend.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 该注解 @AuthCheck 用于标记方法，表示调用该方法时需要进行权限检查。
 * 通过 mustRole 属性指定调用该方法所需的角色。
 * 注解在运行时依然有效，可以通过反射读取并执行权限校验逻辑。
 */

@Target(ElementType.METHOD) // 在什么上面生效
@Retention(RetentionPolicy.RUNTIME) // 在什么时候生效
public @interface AuthCheck {

    /**
     * 作用：定义注解的一个属性 mustRole，类型是 String，表示必须具有的角色。
     * default ""：为该属性指定默认值为空字符串，使用注解时可以不写该属性，默认值生效。
     * 用途：在使用该注解时，可以指定某个角色名称，表示调用该方法时必须具备该角色权限。
     **/
    String mustRole() default "";
}
